package com.gxy.learn.design.model.behaviour.state;

import lombok.extern.slf4j.Slf4j;

/**
 * @description: 电梯开门状态类
 * @author: gaoxueyong
 * @Date: 2022/11/8 17:07
 */
@Slf4j
public class OpeningState extends LiftState{
    /**
     * 开门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void open() {
        log.info("电梯开门。。。");
    }

    /**
     * 关门
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void close() {
//        开门状态时可以关门的
//        修改状态
        super.context.setLiftState(Context.CLOSING_STATE);
//        调用当前状态下的close方法
        super.context.close();
    }

    /**
     * 运行
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void run() {
//        开门本身就是运行中 故什么都不做
    }

    /**
     * 停止
     *
     * @return void
     * @Author gaoxueyong
     * @Date 4:27 下午 2022/11/8
     * @Param []
     **/
    @Override
    public void stop() {
//        开门时本身就是停止的，故什么都不做
    }
}
